A Framework for Reasoning about ERLANG Code
نویسنده
چکیده
Fredlund, L.-Å. 2001: A Framework for Reasoning about ERLANG Code. TRITA-IT AVH 01:04, Department of Microelectronics and Information Technology, Stockholm. ISSN 14035286. We present a framework for formal reasoning about the behaviour of software written in ERLANG, a functional programming language with prominent support for process based concurrency, message passing communication and distribution. The framework contains the following key ingredients: a specification language based on the μ-calculus and first-order predicate logic, a hierarchical small-step structural operational semantics of ERLANG, a judgement format allowing parametrised behavioural assertions, and a Gentzen style proof system for proving validity of such assertions. The proof system supports property decomposition through a cut rule and handles program recursion through well-founded induction. An implementation is available in the form of a proof assistant tool for checking the correctness of proof steps. The tool offers support for automatic proof discovery through higher–level rules tailored to ERLANG. As illustrated in several case studies this framework provides the expressive power required by the open and dynamic nature of distributed systems. Lars-Åke Fredlund, Department of Microelectronics and Information Technology, Royal Institute of Technology, KTH Electrum 229, SE-16440 Kista, Sweden, E-mail: [email protected]
منابع مشابه
Erlang Behaviours: Programming with Process Design Patterns
Erlang processes run independently of each other, each using separate memory and communicating with each other by message passing. These processes, while executing different code, do so following a number of common patterns. By examining different examples of Erlang-style concurrency in client/server architectures, we identify the generic and specific parts of the code and extract the generic c...
متن کاملPROPERTY ANALYSIS OF TRIPLE IMPLICATION METHOD FOR APPROXIMATE REASONING ON ATANASSOVS INTUITIONISTIC FUZZY SETS
Firstly, two kinds of natural distances between intuitionistic fuzzy sets are generated by the classical natural distance between fuzzy sets under a unified framework of residual intuitionistic implication operators. Secondly, the continuity and approximation property of a method for solving intuitionistic fuzzy reasoning are defined. It is proved that the triple implication method for intuitio...
متن کاملSemi-Automated Verification of Erlang Code
Erlang is a functional programming language with support for concurrency and message passing communication that is widely used at Ericsson for developing telecommunication applications. We consider the challenge of verifying temporal properties of Erlang programs which are used to implement systems with dynamically evolving process structures and unbounded data. This is a hard task, which requi...
متن کاملIncremental Clone Detection and Elimination for Erlang Programs
A well-known bad code smell in refactoring and software maintenance is the existence of code clones, which are code fragments that are identical or similar to one another. This paper describes an approach to incrementally detecting ‘similar’ code based on the notion of least-general common abstraction, or anti-unification, as well as a framework for user-controlled incremental elimination of co...
متن کاملCompiling Erlang via C
This paper discusses the implementation of an Er-lang compiler which provides native compilation using C as an intermediate language. The intermediate output, while not elegant, is amenable to being ported away from the Erlang environment and into morètraditional' C based development environments. The compiler also provides a number of special features. These features include support for a conc...
متن کامل